package DP.abstractFactory.common;

import DP.abstractFactory.common.creator.AbstractCreator;
import DP.abstractFactory.common.creator.impl.Creator1;
import DP.abstractFactory.common.creator.impl.Creator2;
import DP.abstractFactory.common.product.AbstractProductA;
import DP.abstractFactory.common.product.AbstractProductB;

/**
 * @author msi
 * 在该类中，没有任何一个方法与实现类有关，
 */
public class Client {
    public static void main(String[] args) {
        AbstractCreator creator1 = new Creator1();
        AbstractCreator creator2 = new Creator2();

        AbstractProductA productA1 = creator1.createProductA();
        AbstractProductB productB1 = creator1.createProductB();

        AbstractProductA productA2 = creator2.createProductA();
        AbstractProductB productB2 = creator2.createProductB();

        productA1.doSomething();
        productA2.doSomething();
        productB1.doSomething();
        productB2.doSomething();
    }
}
